ユニバーサルフォワーダーを中継サーバーにしてSplunk Cloudにデータを送る
今回やりたいこととして、ユニバーサルフォワーダー(UF) -> 中間ユニバーサルフォワーダー(IF) -> Splunk Cloud のように、一度送信したいデータを中継してSplunk Cloudに転送する構成をやってみます。
この構成では、プライベートネットワークなど、直接インターネットに出られない環境のホストのデータを中継ホストを経由して、Splunk Cloudまで転送する時などに検討できます。
ただし、ファンアウト構成となり、中継ホストがデータ伝送のボトルネックとなることがあるため、多数のエンドポイントからデータを中継する場合は注意が必要です。
今回、Windows OSで検証しています。Linuxベース OS でもおおよそ同じ設定になるかと思います。
それでは設定をやっていきます。
設定の流れ
- 中継ホスト
- ホスト名の確認
- ユニバーサルフォワーダーのインストールとSplunk Cloudとの接続認証を行う
- データ受信の設定を行う
- Windowsファイアウォールの許可
- IP確認
- データ収集対象ホスト
- ホスト名の確認
- ユニバーサルフォワーダーをインストールする(データ収集設定)
- 中継ホストへのデータ転送設定を行う
ではやってみます。
中継ホスト設定
ホスト名の確認
まず最初に中継ホストのホスト名を確認しておきます。
EC2AMAZ-OSNEB9N
です。
## コマンドプロンプトでホスト確認
hostname
EC2AMAZ-OSNEB9N
ユニバーサルフォワーダーのインストールとSplunk Cloudとの接続認証を行う
以前のブログにあげたようにユニバーサルフォワーダーをインストールします。
下記のブログを参考にWindows OSにUFのインストールとSplunk Cloudとの接続認証を行ってください。※データ収集設定も同時にやってもOKです
中継ホストから出力されるログやメトリクスが取りたい場合は、データ収集設定を行っても構いませんし、不必要であれば取らなくても構いません。
今回はインストール手順内でいくつかの項目でデータ収集を有効化しました。
データがSplunk Cloudに流れていることを確認しておきます。
## Splunk Webで以下検索
index=main host="EC2AMAZ-OSNEB9N"
データ受信の設定を行う
次に中継ホストがデータ収集対象ホストからのデータを受け取れるように設定を行います。
この設定は、C:\Program Files\SplunkUniversalForwarder\etc\system\local\inputs.conf
に設定を入れることで可能になります。
エディタでinputs.conf
ファイルを新規作成、または編集します。
[splunktcp://9997]
disabled=0
コマンドプロンプトでフォワーダーのサービスを再起動します。
## サービスを再起動
"C:\Program Files\SplunkUniversalForwarder\bin\splunk.exe" restart
SplunkForwarder: Stopped
Splunk> Finding your faults, just like mom.
Checking prerequisites...
Checking mgmt port [8089]: open
Checking conf files for problems...
Done
Checking default conf files for edits...
Validating installed files against hashes from 'C:\Program Files\SplunkUniversalForwarder\splunkforwarder-9.4.0-6b4ebe426ca6-windows-x64-manifest'
All installed files intact.
Done
All preliminary checks passed.
Starting splunk server daemon (splunkd)...
SplunkForwarder: Starting (pid 4564)
Done
再起動が完了したら、ポートがリッスンしているか確認します。
## コマンドプロンプトでポートを確認
netstat -an | findstr 9997
TCP 0.0.0.0:9997 0.0.0.0:0 LISTENING
Windowsファイアウォールの許可
ポート9997をWindows OSが受け付けられるようにWindowsファイアウォールの設定を行います。
コントロールパネルを開き、設定します。
それぞれ以下のように設定していきます。
リモートIPは、データ収集の対象ホストのIPアドレスが適切です。
IP確認
最後に次の設定手順で利用するために中継ホストのIPアドレスを確認しておきます。
## 中継ホストのIPアドレスを確認
ipconfig
Windows IP Configuration
Ethernet adapter Ethernet:
IPv4 Address. . . . . . . . . . . : 172.31.32.133
データ収集ホストの設定
ホスト名の確認
データ収取対象ホストの方でもホスト名を確認しておきます。
## コマンドプロンプトでホスト名確認
hostname
EC2AMAZ-QBFP926
ユニバーサルフォワーダーをインストールする(データ収集設定)
前の手順と同様にユニバーサルフォワーダーをインストールし、データ収集の設定を行いますが、Splunk Cloudとの接続認証は行いません。
繰り返しになりますが、下記のブログを参考にWindows OSにユニバーサルフォワーダーをインストールとデータ収集設定を行ってください。
この時点では、当然ですがこのホストからのデータは収集できていないことを確認します。
中継ホストへのデータ転送設定を行う
次にデータ収集対象ホストから中継ホストに向けてデータを送信するよう設定を行います。
この設定は、C:\Program Files\SplunkUniversalForwarder\etc\system\local\outputs.conf
に設定を入れることで可能になります。
設定ファイルをエディタで書き込むこともできますが、今回はCLIのコマンドで設定を行います。
コマンドプロンプトを開き、下記のように設定します。
## 下記コマンドで中継ホストのIPとポートにデータを送信するように設定
"C:\Program Files\SplunkUniversalForwarder\bin\splunk.exe" add forward-server 172.31.32.133:9997
Your session is invalid. Please login.
Splunk username: admin
Password:
Added forwarding to: 172.31.32.133:9997.
コマンド実行後、C:\Program Files\SplunkUniversalForwarder\etc\system\local\outputs.conf
に設定が書き込まれるので確認してみます。
下記の7行が書き込まれました。
[tcpout]
defaultGroup = default-autolb-group
[tcpout:default-autolb-group]
server = 172.31.32.133:9997
[tcpout-server://172.31.32.133:9997]
サービスを再起動します。
## コマンドプロンプトでサービスを再起動
"C:\Program Files\SplunkUniversalForwarder\bin\splunk.exe" restart
SplunkForwarder: Stopped
Splunk> Finding your faults, just like mom.
Checking prerequisites...
Checking mgmt port [8089]: open
Checking conf files for problems...
Done
Checking default conf files for edits...
Validating installed files against hashes from 'C:\Program Files\SplunkUniversalForwarder\splunkforwarder-9.4.0-6b4ebe426ca6-windows-x64-manifest'
All installed files intact.
Done
All preliminary checks passed.
Starting splunk server daemon (splunkd)...
SplunkForwarder: Starting (pid 2488)
Done
これで設定が完了しました!
データ収集対象ホストから中継ホストを経由してSplunk Cloudにデータが届いていることを確認してみます。
## Splunk Webで以下検索
index=main host="EC2AMAZ-QBFP926"
データが収集できていることが確認できました!
まとめ
今回、UF -> UF(IF) -> Splunk Cloud の構成でデータが送信できることを確認してみました。
本記事がどなたかの一助になれば幸いです。
Linuxベース OS でやってみたい方はユニバーサルフォワーダーのインストールなど、下記のブログを参考に読み替えていただければと思います。